﻿#define _CRT_SECURE_NO_WARNINGS 1
//实现⼀个算法，确定⼀个字符串s的所有字符是否全都不同。
//eg：输⼊:s = "leetcode"  输出:false
#include <iostream>
using namespace std;
bool isUnique(string& s)
{
	//利⽤鸽巢原理来做的优化
	if (s.size() > 26) 
		return false;
	int bitMap = 0;
	for (auto ch : s)
	{
		int i = ch - 'a';
		//先判断字符是否已经出现过
		if (((bitMap >> i) & 1) == 1) return false;
		//把当前字符加⼊到位图中
		bitMap |= 1 << i;
	}
	return true;
}

int main()
{
	string s("leetcode");
	cout << isUnique(s) << endl;

	return 0;
}